#ifndef __INITIATOR_TOP_H__
#define __INITIATOR_TOP_H__

#include <systemc>

#include "tlm.h"
#include "tlm_utils/simple_initiator_socket.h"
#include "tlm_utils/simple_target_socket.h"

using namespace sc_core; //can let sc_core::sc_module -> sc_module
using namespace sc_dt;
using namespace std;
using namespace tlm_utils;


class initiator_top: public sc_core::sc_module{

public:
  SC_HAS_PROCESS(initiator_top);
  tlm_utils::simple_initiator_socket<initiator_top> socket;
  initiator_top(const sc_module_name& name): socket("socket"){ //SC_CTOR(initiator_top): socket("socket"){
    SC_THREAD(thread_process);
  }
  void thread_process();

private:
  int data;

};

#endif /* __INITIATOR_TOP_H__ */
